/**
 * Time：2024.04.28
 * Content：学习线程的使用以及阻塞
 * Author：Qian You
*/
#include <iostream>
#include <bits/stdc++.h>
// 头文件
#include <thread>
using namespace std;

// 线程入口函数
void printMsg(string msg)
{
    cout << msg << endl;
    return;
}

int main()
{
    // 1.创建线程
    thread thread1(printMsg, "Hello Thread");
    // thread1.join(); // 检查thread1有没有结束，让主线程等待其他线程执行完毕之后再结束，join()是阻塞的，线程执行完之后才会执行join()后面的
    // thread1.detach(); // 将主线程和子线程分离，子线程在后台运行
    bool isJoin = thread1.joinable(); // 判断线程是否能调用join()或detach()，以防报错
    if(isJoin)
        thread1.join();
    return 0;
}